ساختار يک سند XML
دهلران پی سی
سایت جامع علمی ,آموزشی,فرهنگی و تفریحی

شکل زير ساختار يک سند XML را نشان می دهد . بر روی بخش های رنگی کليک نموده تا اطلاعات تکميلی در رابطه با هر يک را مشاهده نمائيد .

برگشت به ساختار  سند XML
 Document Elements . المان ها (Elements) بمنزله ستون فقرات در سندهای XML مطرح و ساختار مورد نياز جهت پردازش های لازم توسط برنامه های ذيربط و يا style-sheet را فراهم می نمايند. المان ها با استفاده از تگ مربوطه که نام يک المان را مشخص می نمايد ، تعريف می گردنند. المان ها می توانند دارای نام و مقادير مربوط به يک Attribute نيز باشند. خصايص فوق، اطلاعات اضافه تری را نسبت به محتويات يک سند مشخص خواهند کرد.تمامی المان ها می بايست دارای نام باشند. اسامی المان ها بر روی حروف بزرگ و کوچک حساس بوده و می بايست حتما" با يک حرف و يا Underscore آغاز گردند.اسامی المان ها می تواند شامل حروف، ارقام ، hypen,underscore و نقطه باشد. ( کاراکتر colon برای namespace ها رزو شده است ) . هر تگ محدوده مربوط به يک المان را مشخص می نمايد. تگ شروع  يک المان ، دارای گرامری مشابه زير است :
.

برای المان هائی که دارای Attribute نمی باشند ، تگ شروع  بصورت زير تعريف می گردد.

تگ پايان ، انتهای يک المان را مشخص کرده و نمی تواند شامل Attribute باشد. تگ های فوق همواره دارای شکل عمومی زير خواهند بود:

</elementName>

يک المان همواره محصور بين تگ های شروع  و پايان است .


    Ali
    Irani

در مثال فوق المان Person دارای دو المان ديگر به نام FirstName و LastName است. المان FirstName شامل مقدار Ali و المان LastName شامل مقدار Irani است . از تگ های خالی ، در موارديک  المان مورد نظر دارای محتوياتی نباشد ، استفاده می گردد. برای نشان دادن اين نوع تگ ها به دو صورت می توان رفتار نمود: در روش اول در ابتدا يک تگ شروع  و بلافاصله يک تگ پايان قرار می گيرد.

در روش دوم ، می توان صرفا" از يک تگ خالی  بصورت   استفاده کرد .  

ارتباط المان ها با يکديگر :  بمنظور تشريح المان های موجود در يک سند XML ، می توان از دو روش  ساختار درختواره ای و يا ساختار فاميلی استفاده کرد .  سند XML ، می بايست دارای يک المان ريشه و يا يک سند (Document) باشد. المان ريشه ، شامل ساير محتويات سند خواهد بود. کدهای زير يک المان ريشه با نام Person را تعريف می کند.


    Ali
    Irani

يک سند XML  ، نمی تواند شامل دو المان ريشه باشد. کدهای زير يک سند XML نادرست را نشان می دهد .

 Ali
 Irani>

در ساختار درختواره ای ، برگ ها  بمنزله  المان ها ئی بوده که خود شامل المان ديگری نمی باشند. ( نظير برگ های موجود در يک شاخه درخت ) . عناصر برگ ، المان هائی هستند که  صرفا" شامل متن و يا تهی می باشند ( گره خالی و يا گره های شامل متن ) . در مثال فوق مشخصات مربوط به هر مقاله در المان های برگ ذخيره می گردنند. در ساختار فاميلی ارتباطات بين المان ها از طريق : Parent,Child,Ancestor, Descendant , Sibiling تشريح می گردد.
برگشت به ساختار  سند XML
Xml Decleration . بخش فوق در اکثر سندهای XML در اولين خط قرار خواهد گرفت . استفاده از تعريف فوق الزامی نبوده و در صورتيکه نياز ، می بايست بعنوان اولين خط در سندهای XML قرار گيرد. بخش تعاريف در يک سند Xml از اجزای زير تشکيل شده است :

  • شماره ورژن . شماره فوق همزمان با توسعه XML ، تغيير خواهد کرد. شماره نسخه فعلی XML  ، يک است .

 

  • تعريف نحوه رمزگشائی سند .  بخش فوق اختياری بوده و در صورت لزوم می بايست بلافاصله پس از شماره  ورژن قرار گرفته و نشاندهنده يک Characterset درست باشد.

 

  • بخشStandAlone.. استفاده از بخش فوق اختياری بوده و در صورت لزوم می بايست در بخش انتهائی تعاريف سندهای XML. قرار گيرد. بخش فوق مشخص خواهد کرد که آيا سند مورد نظر از لحاظ منابع اطلاعاتی به منابع خارجی ديگری وابسته است يا خير ؟ در صورتيکه مقدار آن Yes باشد بمنزله عدم دريافت منابع خارجی بوده و در غير اينصورت بمنزله دريافت اطلاعات از منابع خارجی است .

برگشت به ساختار سند XML
Processing Instructions . از بخش فوق برای پاس دادن اطلاعات به ساير برنامه ها استفاده می گردد. دستورالعمل های پردازش الزامی به داشتن يک گرامر داخلی نداشته  و ممکن است از کاراکترهای نشانه گذاری  استفاده نمايند. بدين ترتيب امکان استفاده آنان در هر محل از سند و خارج از نشانه گذاری ها امکان پذير خواهد بود . دستورات فوق ، می توانند در prolog ، بهمراه  DTD  و يا در بخش محتويات استفاده گردند . نحوه نمايش دستورالعمل های پردازش توسط Schema و يا پردازنده های DTD توضيح داده نخواهند شد. دستورالعمل های پردازشی می بايست با يک شناسه  Target  آغاز گردنند. اين نوع شناسه ها  نسبت به حروف بزرگ و کوچک حساس بوده و می بايست با يک حرف و يا يک UnderScore آغاز گردنند. کدهای زير نمونه ای از دستورالعمل های پردازشی را نشان می دهد.

دستورالعمل های فوق با  خاتمه خواهند يافت .
Style Sheet Processing Instructions . شرکت مايکروسافت در هماهنگی با W3C اقدام به پياده سازی يک دستورالعمل پردازشی با نام Xml-StyleSheet نموده است . دستورالعمل فوق می بايست در بخش prolog  و قبل از المان ريشه قرار گيرد . نحوه بکارگيری دستور فوق به شکل زير است :

type ، يک text/css ( در صورت  لينک به فايل Cascading Style Sheet ) و يا text/XSL ( در صورت لينک به فايل XSLT  ) است .  Uri)Universal resource Identifier) آدرس محل استقرار stylesheet را مشخص کرده و با آدرس محل استقرار سند xml  ارتباط خواهد داشت . کدهای زير نمونه ای از دستورالعمل های پردازش ، برای يک Style-Sheet را نشان می دهد  که با استفاده از يک CSS ايجاد شده است .

xml-stylesheet  href="/style.css"  type="text/css"  title="default stylesheet" ?>

کدهای زير نحوه بکارگيری و تعريف يک Style-Sheet را که بر اساس XSL ايجاد شده است را نشان می دهد.

xml-stylesheet  href="/style.xsl"  type="text/xsl"  title="default stylesheet" ?>

برگشت به ساختار سند XML

DocType Declerations . بخش  فوق ،  امکان مشخص نمودن  المان ريشه و DTD)Document Type Definition) را با مراجعه به يک فايل خارجی و يا از طريق تعاريف مستقيم ( داخلی )  برای يک سند XML فراهم می نمايد . تعريف يک DOCType شامل موارد زير است :

  • نام سند و يا المان ريشه ( وجود بخش فوق زمانيکه از تعاريف DocType استفاده می گردد ،الزامی است ) .

  • شناسه های system و Public برای DTD بمنظور بررسی صحت ساختار سند.

  • يک زير مجموعه داخلی از تعاريف DTD . بخش فوق بين علائم [ و ] قرار خواهد گرفت .

در ساده ترين حالت تعريف DocType ، صرفا" المان ريشه معرفی  می گردد.

اغلب سندهائی که از بخش تعاريف DocType استفاده می کنند به يک سند خارجی که شامل تعاريف مربوطه برای ايجاد DTD است، مراجعه خواهند کرد .

URIreference به فايلی که شامل تعاريف است ، اشاره می نمايد.

PublicIdentifier شناسه ای مجزا را معرفی می نمايد که برخی پارسر ها را قادر به استفاده از آن جهت مراجعه به DTD در مقابل URIreference باشند. دربخش تعاريف DocType ،می توان اقدام به درج  تعاريف بصورت مستقيم کرد . در چنين  مواردی از  گرامر زير استفاده می گردد:

    declarations
]>

در صورتيکه تعاريف DTD  با يک فايل خارجی مرتبط می گردنند ،از گرامر زير استفاده می گردد.

declarations
]>

برگشت به ساختار سند XML  
Comments .از بخش فوق بمنظور درج توضيحات  لازم  در رابطه با سند XML استفاده می گردد . در چنين مواردی پارسر، عمليات خاصی را بر روی آنها ( توضيحات )  انجام نخواهد داد.  توضيحات با علامت--!>  شروع و با  علامت < --  خاتمه می يابد . عبارت زير توضيحات دلخواهی  را در يک سند XML درج می نمايد .

توضيحات می توانند در بخش prolog  ، همراه DTD ، بعد از سند و يا در قسمت محتويات درج گردند. امکان استفاده از توضيحات بهمراه Attribute و يا درون تگ ها وجود ندارد . پارسر با مشاهده < --  از خاتمه توضيحات آگاه  و عمليات عادی خود برای پردازش سند XML را دنبال ( پس از يک وقفه کوتاه همزمان با درج توضيحات ) خواهد کرد . با توجه به رسالت <-- ، ( خاتمه دهنده توضيحات ) نمی توان از آن در بخش های متفاوت عبارات مندرچ در قسمت توضيحات استفاده کرد . بجزء  محدوديت فوق  ، امکان استفاده از ساير کاراکترهای مجاز XML  در بخش توضيحات ، ميسر خواهد بود . ( مشابه بخش CDATA) .

برگشت به ساختار سند XML

 NameSpace  . با استفاده از XML namespace ،  می توان اين اطمينان  را پيدا نمود که بين اسامی المان ها ی  مشابه ( با مفا هيم متفاوت )  تداخل و تعارضی بوجود نخواهد آمد.

برگشت به ساختار سند XML

 Attribute . ويژگی فوق،امکان مشخص نمودن و تعريف  اطلاعات تکميلی در رابطه با يک المان را فراهم می نمايد.از Attribute برای تعريف Property های يک المان نيز استفاده می گردد.Attribute ها را می بايست در تگ های شروع  و يا خالی استفاده کرد . گرامراستفاده از  Attribute بصورت  زير است :

يا


Attribute ، می بايست دارای نام و مقدار باشد. يک المان نمی تواند دارای دو attribute باشد.

برگشت به ساختار سند XML
 CDATA . در اين بخش به پارسر اعلان می گردد که کدهای نشانه گذاری  در کاراکترهای موجود در بخش CDATA  وجود ندارد. بخش فوق اغلب مورد استفاده زبانهای اسکريپت و نمونه محتويات HTML,XML است .  زمانيکه پارسر با ] CDATA] ! >  مواجه می گردد ، هيچگونه تفسيری در رابطه کاراکترهای موجود در بخش فوق را  انجام نخواهد داد . پارسر با مواجه شدن با <[[  ، عمليات عادی خود برای تفسير را دنبال ادامه خواهد داد ( پس از يک توقف کوتاه و صرفا" ارائه گزارش ) . گرامراستفاده از CDATA بصورت زير است .

,]]>

برگشت به ساختار سند XML  
Character and entity Refrences  . امکان درج مستقيم کد حروف در يک سند XML  نيز وجود دارد. ( در اين حالت برای درج حروف از تايپ  کاراکترها بصورت مستقيم استفاده نشده است )  . استفاده از ويژگی فوق در موارد زير  مفيد خواهد بود :

  • امکان درج مستقيم کاراکترها در يک سند (بدليل تفسير آنان بعنوان کدهای نشانه گذاری)  وجود نداشته باشد .

  • امکان درج مستقيم کاراکترها بدليل محدوديت دستگاه ورود اطلاعات وجود داشته  باشد .

  • امکان ارسال مطمئن کاراکترها از طريق پردازنده ئی با محدوديت کاراکترهای تک بايت وجود داشته  باشد .

  • يک رشته و يا بخشی از سند بصورت متناوب تکرار و می توان آن را بصورت مختصر استفاده کرد . 
     

بمنظور ارائه محتويات دلخواه ، XML از تعدادی عبارت خاص که با علامت & شروع و با ; خاتمه می يابند، استفاده می نمايد .  مرجع کاراکترها ، امکانی را بمنظور درج کاراکترهای Unicode که توسط يک عدد مشخص می گردند ، فراهم می نمايد .  برای درج کدهای مربوطه می توان از مبنای ده و يا شانزده استفاده کرد .  برای درج کد با استفاده از مبنای ده  از; value#&  و برای مبنای شانزده از ; x value#&  استفاده می گردد. مثلا" برای درج علامت يورو در يک سند XML می توان از  ;  x20AC#&   و يا    ; z8364 #&  استفاده کرد . جدول زير پنج  entity از قبل ساخته شده برای کاراکترهای استفاده شده در يک سند XML را نشان می دهد .

Entity

Entity Reference Meaning
lt < < ( less than)
gt > > (greater than)
amp & & (ampersand)
apos ' '   (apostroph or single quote)
quot " " (double quote)

Textual content . در سندهای XML ، امکان استفاده از کدهای Unicode و مجموعه وسيعی از کاراکترها شامل حروف، ارقام و ... وجود دارد.


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








ارسال توسط هادی احمدی

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

آمار وب سایت:  

بازدید امروز : 67
بازدید دیروز : 9
بازدید هفته : 67
بازدید ماه : 670
بازدید کل : 162613
تعداد مطالب : 736
تعداد نظرات : 23
تعداد آنلاین : 1

Google

در اين وبلاگ
در كل اينترنت
 <-PostTitle-> <-PostContent-> 1 <-PostLink->